package com.umbr3lla.main.state.cards;

/**
 * Main card stub
 * @author Sean McGrail
 *
 */
public abstract class Card implements Comparable<Card> {

	public static enum CARD_TYPES {
		CHARACTER(), AMMO(), ITEM(), ACTION(), WEAPON(), INFECTED(), TOKEN();
	}

	public static enum CARD_SETS {
		BASE(), ALLIANCE(), OUTBREAK(), NIGHTMARE();
	}

	private static int uniqueId = 0; // uniqiue id for all cards
	protected String cardIdName;
	protected CARD_TYPES type;

	public Card(String cardIdName, CARD_TYPES type) {
		this.cardIdName = cardIdName;
		this.type = type;
		uniqueId++;
	}
	
	public CARD_TYPES getType() {
		return type;
	}
	
	public String getCardIdName() {
		return cardIdName;
	}

	//play the card
	public abstract void playCardFromHand();
	
	// ----------------------------------------------------------
	
	public int compareTo(Card o) {
		return cardIdName.compareTo(o.cardIdName);
	}

	

}
